home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD010b.dsk / CONNECT4.bas < prev    next >
BASIC Source File  |  2003-06-12  |  3KB  |  83 lines

  1. 10  REM **********************
  2. 11  REM *    CONNECT4        *
  3. 12  REM *  BY JIM LAFARGUE   *
  4. 13  REM *    SPARTA, NJ      *
  5. 14  REM **********************
  6. 15  REM *    SUBMITTED TO    *
  7. 16  REM *    SOFTDISK BY     *
  8. 17  REM * DR. M.W. FORDICE   *
  9. 18  REM **********************
  10. 19  REM 
  11. 20  REM 
  12. 70  TEXT : HOME 
  13. 80  DIM A(10,9),P$(2)
  14. 90  VTAB 10
  15. 100  PRINT "CONNECT FOUR PROGRAM"
  16. 105  VTAB 14: PRINT "BY JIM LAFARGUE"
  17. 110  VTAB 20
  18. 120  INPUT "FIRST PLAYER'S NAME  ";P$(1)
  19. 125  PRINT : INPUT "SECOND PLAYER'S NAME  ";P$(2)
  20. 140  FOR C = 1 TO 7: FOR R = 1 TO 6:A(C,R) = 0: NEXT R,C
  21. 150  GR 
  22. 160  ONERR  GOTO 210
  23. 180 W = 0
  24. 190  GOSUB 800:W = W +1: IF W >2  THEN W = 1
  25. 200  PRINT " ";P$(W);"'S MOVE--COLUMN ";
  26. 210  GET C: PRINT C
  27. 240  IF C >0  AND C <8  AND C =  INT(C)  THEN 260
  28. 250  PRINT "NO SUCH COLUMN--CHOOSE AGAIN ";: GOTO 210
  29. 260  IF A(C,6) = 0  THEN 300
  30. 270  PRINT "COLUMN FILLED--CHOOSE AGAIN";: GOTO 210
  31. 300  REM  ROW SELECTION
  32. 310 R = 6
  33. 320  IF A(C,R -1) >0  THEN 350
  34. 330 R = R -1
  35. 340  IF R >1  THEN 320
  36. 350 A(C,R) = W
  37. 400  REM  CHECK FOR WIN OR DRAW
  38. 410  FOR C = 1 TO 7: FOR R = 1 TO 6
  39. 420  IF A(C,R) -W  THEN 470
  40. 425  IF A(C +1,R) -W  THEN 455
  41. 430  IF A(C +2,R) -W  THEN 455
  42. 435  IF A(C +3,R) = W  THEN 900: REM  VICTORY
  43. 455  IF A(C,R +1) -W  THEN 470
  44. 460  IF A(C,R +2) -W  THEN 470
  45. 465  IF A(C,R +3) = W  THEN 900
  46. 470  NEXT R,C
  47. 475  FOR C = 1 TO 4: FOR R = 1 TO 3
  48. 480  IF A(C +3,R) -W  THEN 520
  49. 485  IF A(C +2,R +1) -W  THEN 520
  50. 490  IF A(C +1,R +2) -W  THEN 520
  51. 495  IF A(C,R +3) = W  THEN 900
  52. 520  IF A(C +1,R +1) -W  THEN 540
  53. 525  IF A(C +2,R +2) -W  THEN 540
  54. 527  IF A(C,R) -W  THEN 540
  55. 530  IF A(C +3,R +3) = W  THEN 900
  56. 540  NEXT R,C
  57. 545 E = 0
  58. 550  FOR C = 1 TO 7
  59. 560  IF A(C,6) = 0  THEN E = 1
  60. 570  NEXT C
  61. 580  IF E  THEN 190
  62. 590  FLASH : PRINT "ALL COLUMNS ARE FILLED--IT'S A DRAW"
  63. 595  NORMAL 
  64. 800  REM  DISPLAY SUBROUTINE
  65. 810  COLOR= 13: REM  YELLOW FRAMEWORK
  66. 815  VLIN 7,39 AT 1
  67. 820  VLIN 7,39 AT 38
  68. 825  FOR X = 2 TO 37  STEP 5: VLIN 7,39 AT X
  69. 830  NEXT X
  70. 835  HLIN 1,38 AT 7: HLIN 1,38 AT 39
  71. 840  FOR X = 8 TO 38  STEP 5: HLIN 1,38 AT X: NEXT X
  72. 845  FOR C = 1 TO 7: FOR R = 1 TO 6
  73. 850  COLOR= A(C,R)
  74. 855  FOR X = 1 TO 4: HLIN C *5 -2,C *5 +1 AT (7 -R) *5 +3 +X: NEXT X
  75. 860  NEXT R,C: HOME : HTAB 2
  76. 865  INVERSE : PRINT  SPC( 3);: FOR X = 1 TO 7: PRINT X;: PRINT  SPC( 4);: NEXT X
  77. 870  PRINT : NORMAL : RETURN 
  78. 900  GOSUB 800: PRINT " ";: FLASH : PRINT P$(W);" WINS!!": NORMAL 
  79. 940  PRINT " ANOTHER GAME (Y OR N)? ";
  80. 950  GET G$: PRINT G$
  81. 960  IF G$ = "Y"  THEN 140
  82. 970  IF G$ < >"N"  THEN 700
  83. 980  TEXT : HOME